package data;

import java.util.HashMap;
/**
 * Répresente une HashMap de l'ensemble des villes
 * dont la clé est le nom de la ville  et la valeur la ville.
 * @author Alexandre Boursier and Mamadou Diallo and Cyril Gorrieri and Emmanuel Menage
 * @version 2012.01.23
 *
 */

public class VilleHelper {
    
	private static HashMap<String, Ville> validVilles;

    /**
     * Crée une table associative contenant toutes les villes possibles.
     */
    static {
        validVilles = new HashMap<String, Ville>();
        for (Ville v : Ville.values()) {
            if (v != Ville.UNKNOWN) {
                validVilles.put(v.toString(), v);
            }
        }
    }

    /**
     * récupère une ville selon son nom
     * @param nom
     * 			  le nom  de la ville
     * @return la ville  dont le nom est passé en paramètre.
     */
    public static Ville getVille(String nom) {
        Ville ville = validVilles.get(nom);
        if (ville != null) {
            return ville;
        } else {
            return Ville.UNKNOWN;
        }
    }

    /**
     * Vérifie l'existence d'une ville dans la table associative
     * @param nom
     * 		 la clé(le nom de la ville)
     * @return true si la ville  recherché est dans la table, false sinon
     */
    public static boolean isVille(String nom) {
    	return validVilles.containsKey(nom);
    }

    /**
     * Affiche  le nom de toutes les villes disponibles
     */
    public static void showAll() {
        for (String command : validVilles.keySet()) {
            System.out.print(command + "  ");
        }
        System.out.println();
    }
}
